web3.js@0.2x.x web3.eth.filter
web3.eth.filter(filterString [, callback])
web3.eth.filter(filterObject [, callback])
ログを監視します。
使用方法
code: web3.eth.filter.js
// can be 'latest' or 'pending'
var filter = web3.eth.filter(filterString);
// OR object are log filter options
var filter = web3.eth.filter(options);
// watch for changes
filter.watch(function(error, result){
if (!error)
console.log(result);
});
// Additionally you can start watching right away, by passing a callback:
web3.eth.filter(options, function(error, result){
if (!error)
console.log(result);
});
パラメータ
1. String|Object
文字列 "latest" または "pending" を指定
最新のトランザクションまたは未承認のトランザクションをそれぞれ監視します。
または、つぎのフィルタオプションオブジェクトを渡します。
fromBlock : Number|String
監視対象のもっとも古いブロック
latest を指定した場合は最新のブロック
pending を指定した場合は現在マイニング中のブロック
デフォルト値: latest
toBlock : Number|String
監視対象のもっとも新しいブロック
latest を指定した場合は最新のブロック
pending を指定した場合は現在マイニング中のブロック
デフォルト値: latest
address : String|Array of Strings
特定のアカウントからのみログを取得するため、アドレスまたはアドレスのリストを指定します。
topics : Array of Strings
ログのエントリの中で、必ず現れる値の配列
#todo どのように使うのかわからないので調べる 2. Function
オプショナル
コールバック関数を渡した場合は、HTTP リクエストが非同期に実行されます。
戻り値
Object - 次のメソッドをもつフィルタオブジェクトが返されます。
filter.get(callback)
フィルタに合致するすべてのログエントリを返します。
filter.watch(callback)
フィルタに合致する状態の変更を監視し、コールバックを実行します。
filter.stopWatching()
監視を停止し、ノードからフィルタを取り除きます。
監視をする必要がなくなったら、毎回このメソッドを呼ぶ必要があります。
filter.watch メソッドのコールバックで受け取るオブジェクトの詳細
String
"latest" パラメータを使用した場合、最後に取り込まれたブロックのハッシュを返します。
String
"pending" パラメータを使用した場合、最新の未承認ブロックのハッシュを返します。
Object - フィルタオプションオブジェクトを使用した場合に、つぎのログオブジェクトが返されます。
logIndex : Number
ブロック内のログのインデックス位置の整数値
未承認のログの場合は null
transactionIndex : Number
ログが作成されたトランザクションのインデックス位置の整数値
未承認のログの場合は null
transactionHash : String
ログが作成されたトランザクションのハッシュ
32バイト
未承認のログの場合は null
blockHash : String
このログが追加されたブロックのハッシュ
32バイト
未承認ブロックの場合は null
未承認のログの場合は null
blockNumber : Number
このログが追加されたブロックのブロック番号
未承認ブロックの場合は null
未承認のログの場合は null
address : String
このログの発生元となるアドレス
32バイト
#todo アドレスだけど、なぜ20バイトでないのかしらべる data : String
1つ以上のログの非インデックスつき引数を含みます。
#todo "non-indexed arguments" の訳 topics : Array of Strings
Array of 0 to 4 32 Bytes DATA of indexed log arguments.
In solidity: The first topic is the hash of the signature of the event
e.g. Deposit(address,bytes32,uint256)), except if you declared the event with the anonymous specifier.
type : STRING
ログが未承認の場合は pending
ログがすでにブロックに取り込まれた場合は mined
注意
サンプルコード
code:example.js
var filter = web3.eth.filter('pending');
filter.watch(function (error, log) {
console.log(log); // {"address":"0x0000000000000000000000000000000000000000", "data":"0x0000000000000000000000000000000000000000000000000000000000000000", ...}
});
// get all past logs again.
var myResults = filter.get(function(error, logs){ ... });
...
// stops and uninstalls the filter
filter.stopWatching();
参考
ほかのソースにもあたってもう少しわかりやすく使用方法をまとめたい。